package br.com.webprojeto.cadastro;

import java.util.List;

import br.com.webprojeto.basicas.*;
import br.com.webprojeto.cadastro.interfaces.*;
import br.com.webprojeto.exception.CnpjDuplicadoException;
import br.com.webprojeto.interfaces.*;


public class CadastroEmpresa implements InterfaceCadastroEmpresa {

	// atributos primarios de interface
	
	private InterfaceColecaoEmpresa empresa;

	// construtores
	
	public CadastroEmpresa(InterfaceColecaoEmpresa empresa) {
		super();
		this.empresa = empresa;
	}

	// metodos delegados
	
	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroEmpresa#adicionarEmpresa(br.com.webrastreio.basicas.Empresa)
	 */
	public void adicionarEmpresa(Empresa Emp) throws CnpjDuplicadoException{
		if(procurarEmpresa(Emp.getCnpj()) == null){
		empresa.adicionarEmpresa(Emp);
		}else{
			CnpjDuplicadoException ex = new CnpjDuplicadoException(Emp.getCnpj());
			throw ex;
		}
	}

	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroEmpresa#removerEmpresa(long)
	 */
	public void removerEmpresa(long codEmpresa) {
		empresa.removerEmpresa(codEmpresa);
	}

	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroEmpresa#atualizarEmpresa(br.com.webrastreio.basicas.Empresa)
	 */
	public void atualizarEmpresa(Empresa Emp) {
		empresa.atualizarEmpresa(Emp);
	}

	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroEmpresa#procurarEmpresa(java.lang.String)
	 */
	public Empresa procurarEmpresa(String cnpj) {
		return empresa.procurarEmpresa(cnpj);
	}

	/* (non-Javadoc)
	 * @see br.com.webrastreio.cadastro.InterfaceCadastroEmpresa#listarEmpresa()
	 */
	public List<Empresa> listarEmpresa() {
		return empresa.listarEmpresa();
	}
	@Override
	public Empresa localizarEmpresaStatus(String status){
		return empresa.localizarEmpresaStatus(status);
	}
	
	
}
